Voice over IP (VOIP) network elements and applications that support SIP protocol, such as for example SIP Proxy, SIP Back-to-Back User Agent (B2BUA), SIP Media Gateway (MGW) and SIP Session Border Controller (SBC), may require a significant level of flexibility in terms of how individual SIP Messages, SIP Transactions or SIP Dialogs should be processed. This includes, but is not limited to, analysis of SIP message attributes, applying pre-defined business rules, manipulation of SIP Uniform Resource Identifiers (URIs) and headers, querying external storage and so on. This situation may lead to very complex implementations of SIP applications, with lots of configuration options and complex code, just to make it possible to address business needs in a particular deployment of a SIP application. To deal with this issue, some SIP applications provide more flexibility by allowing definition of some business logic using scripting languages, which may be either open source or proprietary. Such scripting capabilities, however, may provide only restricted access to properties of SIP messages, transactions or dialogs, as well as the fact that scripting can only be invoked at certain specific acts of SIP session processing. This conventional solution may not allow monitoring and control throughout the management of SIP sessions.
What is needed is a system and method that decouples business logic of SIP sessions processing from the actual SIP protocol implementation.